package com.stu.Dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.stu.pojo.StuFamilyInformation;
import com.stu.pojo.StuOtherInformation;
import lombok.Data;

import java.io.Serializable;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;

@Data
public class StuInformationDto implements Serializable {
    // 学生ID
    private int id;
    // 学号
    private String stuId;
    // 密码
    private String password;
    // 姓名
    private String name;
    // 性别
    private String gender;
    // 生日
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd")
    private LocalDate birthday;
    // 年级
    private String grade;
    // 学制
    private Integer schoolSystem;
    // 学院
    private String college;
    // 政治面貌
    private String politicalOutlook;
    // 专业
    private String major;
    // 民族
    private String nation;
    // 班级
    private String classInfo; // 通常类名避免使用关键字，这里使用classInfo代替
    // 学生状态
    private String stuStatus;
    // 入学年份
    private String intake;
    // 身份证号
    private String idCard;
    // 籍贯
    private String nativePlace;
    // 常住地址
    private String permanentResidence;
    // 监护人
    private String ofStu;
    // 学生电话
    private String phone;
    // 邮箱
    private String email;
    // QQ号
    private String accountQQ;
    // 家庭电话
    private String phoneHome;
    // 邮编
    private String zipCode;
    // 家庭地址
    private String homeAddress;
    // 微信
    private String wechat;

    // 创建时间
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
    // 更新时间
    @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    // 创建用户
    private Long createUser;
    // 更新用户
    private Long updateUser;

    //获取家庭信息的数组
    private List<StuFamilyInformation> stuFamilyInformation = new ArrayList<>();

    //获取其他信息的数组
    private StuOtherInformation stuOtherInformation = new StuOtherInformation();
}
